#include <stdio.h>
#include <string.h>
struct BOOK//定义一个结构体书
{
    char name[20];
    int price;

};
int main()
{
    int n;
    scanf("%d",&n);//输入N
    struct BOOK str[n];
    for(int i = 0;i < n;i++)//循环输入书的相关信息存入结构体
    {
        scanf("%s %d",str[i].name,&str[i].price);
    }
    int temp = 0;//定义一个临时变量存放价格
    char temp_s[20];//定义一个临时变量存放书名
    for(int i = 0;i < n;i++)//两个循环进行冒泡排序
    {
        for(int j = 0;j < n - 1 - i;j++)
        {
            if(str[j].price > str[j+1].price)
            {
                temp = str[j+1].price;
                strcpy(temp_s,str[j+1].name);
                str[j+1].price = str[j].price;
                strcpy(str[j+1].name,str[j].name);
                str[j].price = temp;
                strcpy(str[j].name,temp_s);
                // struct BOOK tmp = str[i+1];
                // str[i+1] = str[i];
                // str[i] = tmp;
            }
        }
    }
    for(int i = 0;i < n;i++)
    {
        printf("%s\n",str[i].name);
    }
    return 0;
}